home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Mac Game Programming Gurus / TricksOfTheMacGameProgrammingGurus.iso / More Source / Libraries / VideoToolbox 95.04.18 / Video bugs < prev    next >
Encoding:
Text File  |  1995-04-19  |  13.6 KB  |  130 lines  |  [TEXT/ttxt]

  1. VideoToolbox: Video bugs
  2. April 18, 1995
  3.  
  4. Other than reading and writing pixels, all access to a video device normally goes through the software video driver. (You can use VideoToolbox SetEntriesQuickly.c to bypass the video driver of a few devices, but I don't recommend that, except as a last resort, because your program will then only work with the few video devices that SetEntriesQuickly supports.) The video driver is normally supplied in ROM on the video card or, for built-in video, in the computer's ROM. Many drivers have subtle bugs that TimeVideo has uncovered and documented. This file is a complete list of all the bugs that I know of. I have the very strong impression that reporting these bugs to the manufacturers has led them to eliminate the bugs in subsequent versions. Before TimeVideo there was no easy way to test for most of these bugs. If your driver is not listed, please run TimeVideo and send me the report: denis@xp.psych.nyu.edu
  5.  
  6. 1. The following drivers crash if one attempts to make a cscGetEntries request.  GDGetEntries tests for these driver names and version numbers, and returns an error message instead of calling a driver that would crash. Try the demo TestGDVideo.
  7. •Mac IIci “Macintosh II Built-In Video” (.Display_Video_Apple_RBV1) (Reported to Apple MacDTS 3/7/90 and Apple.Bugs 12/30/92)
  8. •Relax 19" Model 200 (.Color_Video_Display version 9288). (Reported to Relax Tech. 1/19/93)
  9. •DOME MD Max (.Display_Video_Apple_DOMEMax version 2). (Reported to DOME 3/30/95.)
  10.  
  11. 2. The following drivers take too long (more than 1 frame) to load the clut (i.e. cscGetEntries request: cscSetEntries). And many suppress one or more frame's worth of VBL interrupts each time they load the clut. Try TimeVideo.
  12. •Apple 4•8 and 8•24 “Macintosh Display Card” (.Display_Video_Apple_MDC) and “Macintosh Display Card 8•24 GC” (.Display_Video_Apple_MDCGC) take two frames to load the clut (and suppress one vbl interrupt) in all modes. (Reported to Apple.Bugs 12/30/92)
  13. •Radius PrecisionColor 8  and 8xj take 5-8 frames to load the whole clut in 8-bit mode (and suppress 5-8 vbl interrupts); the time is proportional to the number of clut entries being loaded. (Ok in 1-, 2-, and 4-bit modes.)
  14. •“RasterOps ColorBoard 264” (.RasterOps 1.2 264   Video Driver version 9327) takes 2 frames to load the clut (and suppresses 1 vbl interrupt) in 8- and 32-bit modes. (Ok in 1-, 2-, and 4-bit modes.)
  15. •RasterOps  “PaintBoard Li” 1.0 24XLi Video Driver takes 4 frames to load the clut (and suppresses 3 vbl interrupts)  in 8-,16-, and 32-bit modes. (Ok in 1-,2-, and 4-bit modes.) (Reported to RasterOps 12/30/92).
  16. •“RasterOps 8XL” (.RasterOps 1.2 8XL Video Driver version 9327) takes 4 frames to load the clut (and suppresses 3 vbl interrupts) in 8-bit mode. (Ok in 1-,2-, and 4-bit modes.)
  17. •"RasterOps 24XLTV" (.RasterOps 1.4 24XLTV Video Driver version 9327) takes 4 frames to load the clut (and suppresses 3 vbl interrupts) in 8- and 32-bit modes. (Ok in 1-,2-, 4-, and 16-bit modes.)
  18. •RasterOps "PaintBoard Turbo XL" (.RasterOps 1.0 PBTurboXL Video Driver version 9327) takes 4 frames to load the clut (and suppresses 3 vbl interrupts).
  19. •“Spectrum/8•24 PDQ” (.Display_Video_Apple_SpecRice version 3) takes 4 frames to load the clut in all modes.
  20.  
  21. 3. The following cards and drivers issue multiple VBL interrupts per frame, whereas they should emit exactly one per frame. Try TimeVideo.
  22. •The 4•8 and 8•24 “Macintosh Display Card” (.Display_Video_Apple_MDC) emit several VBL interrupts per video frame. (Reported to Apple.Bugs 12/30/92)
  23. •Apple Quadra 700 "Macintosh E Built-In Video" (.Display_Video_Apple_DAFB) emits 2 VBL interrupts per frame if the processor cache is enabled, but emits only 1, as it's supposed to, if the processor cache is disabled. (Reported by Kyle Cave, cavekr@ctrvax.vanderbilt.edu)
  24. •Apple Quadra 900 “Macintosh C Built-In Video” (.Display_Video_Apple_DAFB) occasionally emits more than 1 VBL interrupt per frame. 
  25. •Apple Quadra 950 “Macintosh G Built-In Video” (.Display_Video_Apple_DAFB version 2)  emits 2 or 3 VBL interrupts per frame. (Reported to Apple.Bugs 12/30/92)
  26. •Note that the .Display_Video_Apple_DAFB version 3 driver does NOT exhibit this bug, at least on the Centris 650 where it resides. It would be interesting to try copying this driver to the afflicted Quadra's, adapting the instructions given above for copying a driver from the IIsi to the IIci.
  27.  
  28. 4. 16 & 32-bit modes. These video drivers will correctly load the whole clut, but screw up if asked to load one clut entry at a time. The problems only occur in 16- and 32-bit mode, i.e. calling cscDirectSetEntries. Apparently few or no applications (other than TimeVideo) ever do this, as otherwise the manufacturers would have detected the fault.
  29. •TrueVision NuVista version 3.0 cscDirectSetEntries (i.e. 16- and 32-bit pixel modes) loads garbage unless “start” is zero. cscSetEntries (i.e. 1-, 2-, 4-, and 8-bit pixel modes) works fine. 
  30. •RasterOps "PaintBoard Turbo XL" (.RasterOps 1.0 PBTurboXL Video Driver version 9327) crashes when attempting to serially load the CLUT in 16-bit mode.
  31.  
  32. 5. The following video drivers don't support cscSetGamma or cscGetGamma. (Apparently these calls are optional, so not supporting them is not, strictly speaking, a bug.)
  33. •“Radius PowerView” (.Radius PowerView Display version 9848) calling cscGetGamma returns a gamma table that's all zero. Calling cscSetGamma has no effect. Fortunately the permanent gamma table is the identity transformation. (Radius confirmed the bugs on 7/93.)
  34. •“Radius GS/C” (.Radius GSC version 18663) doesn't support cscSetGamma or cscGetGamma. Unfortunately the permanent gamma table is NOT the identity transformation, so it fails the write-then-read cscSetEntries-cscGetEntries test performed by TimeVideo. (Radius suggests upgrading to one of their newer cards. 3/95)
  35. •“SuperMac ColorCard” v1.97S (.Display_SuperMac_ColorCard version 1) does not implement the gamma table; cscSetGamma and cscGetGamma both return error codes. Fortunately the permanent gamma table is the identity transformation. 
  36.  
  37. 6. Some color video cards autodetect monochrome monitors, and remain in gray mode despite attempts to set to color mode (e.g. to use the ISR Video Attenuator). You may be able to fool the video card into thinking it's driving a color monitor by using a MacLiberty adapter [cheap--ordering address appears in "Advice"] to program the sense pins appropriately.
  38. •If the “Radius PrecisionColor 8” and “Radius PrecisionColor 8Xj” sense a monochrome monitor then they always operate in "gray" mode, even though the driver allows you to set and read the color/gray bit. Try TimeVideo.
  39. •Tom Busey asks, "I have an apple 2-page monochrome monitor, and I'd like to use an ISR Video Attenuator with it [see VideoToolbox:ISR Video Attenuator]. The problem is that my PowerMac 7100 vram port insists that the 2-page monitor is grayscale only, i.e. TimeVideo reports !color. Is there any way to trick the card into thinking it is in color so that I can use my video attenuator?" A few weeks later, he adds, “The MacLiberty adapter does fool the computer into thinking I’ve got a color monitor. However, the monitor has an unusual connector and takes its input from the blue instead of the green video pin, so I'm making a custom  video attenuator with its output on that pin.”
  40.  
  41. 7. Other bugs:
  42. •“DOME Md Imaging Card” (.Display_Video_Apple_DOMEMd version 2) calling cscGetEntries returns RRR instead of RGB. (Patrick Flanagan reported it to DOME on 3/29/95.)
  43. •“Spectrum/8•24 PDQ” (.Display_Video_Apple_SpecRice version 3) failed all cscGetEntries tests when in 16-bit-pixel mode.
  44. •“Truevision NuVista+™ Card” (.Display_Video_NuVista version ??) fails all cscGetEntries tests. Reported by David Rose <PSY009@sysh.surrey.ac.uk> on 8/94.
  45. •Relax 19" Model 200 (.Color_Video_Display version 9288) doesn't support the optional cscGetGamma Status call. The required cscGetPageCnt (aka cscGetPages) Status call erroneously returns a page count of 0 for all modes. Try TimeVideo or TestGDVideo. (Reported to Relax Tech. 1/19/93)
  46. •TrueVision NuVista version 3.0 can't display MacsBug.
  47. •The presence of the 8•24GC accelerator seems to HALVE the speed of CopyBits, at least on a RasterOps 8XL running on a Mac IIfx. CopyBitsQuickly is unaffected, of course.
  48. •Apple PowerBook 520/540 "CSC-2 Built-In Video" (.Display_Video_Apple_CSC version 4) apparently makes small 1-2% errors in the write-then-read cscSetEntries-cscGetEntries CLUT test performed by TimeVideo. (Perhaps it doesn't support cscSetGamma.)
  49.  
  50. 6. Video drivers that have been tested (version 0, unless noted otherwise):
  51. Apple “Toby frame buffer card” (.Display_Video_Apple_TFB versions 4, 5, & 6)
  52. Apple “Mac II High-Resolution Video Card” (.Display_Video_Apple_HRVC)
  53. Apple 8•24 “Macintosh Display Card” (.Display_Video_Apple_MDC)
  54. Apple “Macintosh Display Card 8•24 GC” (.Display_Video_Apple_MDCGC)
  55. Apple Mac Plus “1-bit QuickDraw”
  56. Apple Mac SE “1-bit QuickDraw”
  57. Apple Mac Portable “1-bit QuickDraw”
  58. Apple Mac Centris 650 “Macintosh I Built-In Video” (.Display_Video_Apple_DAFB v. 3)
  59. Apple Mac Centris 660AV “Macintosh 3B” (.Display_Video_Apple_Civic)
  60. Apple Mac Classic II “Macintosh F Built-In Video” (.Display_Video_Apple_Apollo)
  61. Apple Macintosh LC III “Macintosh AA Built-In Video” (.Display_Video_Apple_Sonora)
  62. Apple “Macintosh SE/30 Internal Video” (.Display_Video_Apple_MacSE/30 Video)
  63. Apple Mac IIci “Macintosh II Built-In Video” (.Dksplay_Video_Apple_RBV1 v. 0 & 1)
  64. Apple Mac IIsi “Macintosh A Built-In Video” (.Display_Video_Apple_RBV1 version 1)
  65. Apple Mac LC II “Macintosh B Built-In Video” (.Display_Video_Apple_V8)
  66. Apple Mac LC 475 “MEMCjr Built-In Video” (.Display_Video_Apple_DAFB version 5)
  67. Apple PowerBook 160 “Macintosh J Built-In Video”(.Display_Video_Apple_DBLite v. 1)
  68. Apple PowerBook 160 “Macintosh A External Video”(.Display_Video_Apple_ViSC)
  69. Apple PowerBook 170 “Macintosh D Built-In Video” (.Display_Video_Apple_TIM)
  70. Apple PowerBook 180 “Macintosh A External Video” (.Display_Video_Apple_ViSC)
  71. Apple PowerBook 180 “Macintosh J Built-In Video” (.Display_Video_Apple_DBLite v. 1)
  72. Apple PowerBook 520/540 "CSC-2 Built-In Video" (.Display_Video_Apple_CSC version 4)
  73. Apple Power Macintosh 6100/60 "Built-In VRAM Video"
  74. Apple Power Macintosh 6100/60 "Built-In DRAM Video" (.Display_Video_Apple_Sonora v. 3)
  75. Apple Power Macintosh 6100/60av “Built-In AV Video” (.Display_Video_Apple_Civic version 1)
  76. Apple Power Macintosh 7100/66 "Built-In VRAM Video" (.Display_Video_Apple_HPV_PDS v. 1)
  77. Apple Power Macintosh 8100/80 "Built-In AV Video" (.Display_Video_Apple_Civic version 1)
  78. Apple Power Macintosh 8100/80 "Built-In VRAM Video" (.Display_Video_Apple_HPV_PDS v. 1)
  79. Apple Power Macintosh 8100/80 "Built-In DRAM Video" (.Display_Video_Apple_Sonora v. 2)
  80. Apple Quadra 630 "Valkyrie Built-In Video" (.Display_Video_Apple_Valkyrie)
  81. Apple Quadra 660AV "Macintosh 3B" (.Display_Video_Apple_Civic)
  82. Apple Quadra 700 “Macintosh E Built-In Video” (.Display_Video_Apple_DAFB)
  83. Apple Quadra 840AV “Macintosh 3A” (.Display_Video_Apple_Civic v. 0 and 2)
  84. Apple Quadra 900 "Macintosh C Built-In Video" (.Display_Video_Apple_DAFB)
  85. Apple Quadra 950 “Macintosh G Built-In Video” (.Display_Video_Apple_DAFB v. 1 & 2)
  86. “DOME Md Imaging Card” (.Display_Video_Apple_DOMEMd version 2)
  87. DOME MD Max "Vortech" (.Display_Video_Apple_DOMEMax version 2)
  88. Ehman “15" Full Page Video Card...”(.Lapis DisplayServerT II Rev 1.0)
  89. E-Machines "ColorLink_ SX-T" (.Display_Video_Apple_EM_10T version 5376)
  90. Lapis “Dual Page Video 1024x768” (.Lapis DisplayServer™ II Rev 1.0)
  91. “Radius GS/C” (.Radius GSC version 18663)
  92. “Radius PowerView” (.Radius PowerView Display version 9848)
  93. Radius PrecisionColor 8 (.Radius PrecisionColor 8)
  94. “Radius PrecisionColor 8Xj” (.Radius PrecisionColor 8Xj)
  95. “RasterOps ColorBoard 264” (.RasterOps 1.2 264   Video Driver version 9327)
  96. RasterOps “PaintBoard Li” (.RasterOps 1.0 24XLi Video Driver version 9327)
  97. RasterOps “ProColor 32” (.RasterOps 1.0 32XL Video Driver version 9327)
  98. “RasterOps 8XL” (.RasterOps 1.2 8XL Video Driver version 9327)
  99. RasterOps 24 L (.RasterOps 1.0 24 L Video Driver)
  100. "RasterOps 24XLTV" (.RasterOps 1.4 24XLTV Video Driver version 9327)
  101. RasterOps "PaintBoard Turbo XL" (.RasterOps 1.0 PBTurboXL Video Driver version 9327)
  102. “Relax 19" Model 200” (.Color_Video_Display version 9288)
  103. “Spectrum/8•24 PDQ” (.Display_Video_Apple_SpecRice version 3)
  104. “SuperMac ColorCard” v1.97S (.Display_SuperMac_ColorCard version 1)
  105. “Truevision NuVista™ Card” (.Display_Video_NuVista version 3.0)
  106. “Truevision NuVista+™ Card” (.Display_Video_NuVista version ??)
  107.  
  108. CONTRIBUTORS TO THIS DOCUMENT
  109. Ken Alexander, U12940@UICVM.BITNET, E-Machines "ColorLink_ SX-T".
  110. Mike.Alexander, Mike.Alexander@um.cc.umich.edu, RasterOps ColorBoard 264.
  111. David Brainard, brainard@condor.psych.ucsb.edu, Quadra 900, 8•24GC, RasterOps 24XLTV, RasterOps PaintBoard Turbo XL, PowerBook 520/540.
  112. Thomas Busey, busey@u.washington.edu, RasterOps 8XL, Power Mac 8100/80, SuperMac ColorCard, Apple 2-page monochrome monitor.
  113. Kyle Cave, cavekr@ctrvax.vanderbilt.edu, Ehman 15", Quadra 700.
  114. Kaan Erdener, kerdener@ptnext.pitzer.edu, Quadra 660AV.
  115. Bart Farell, bart_farell@isr.syr.edu, Quadra 840av.
  116. Patrick Flanagan, flanagan@deakin.edu.au, DOME Md Imaging Card, Radius GS/C
  117. Mike Garver, Lapis Dual Page Video, Spectrum/8•24 PDQ.
  118. Tony Hayes, PowerBook 180.
  119. Gregory Jackson, zu02203@uabdpo.dpo.uab.edu, DOME Md Max video card.
  120. Jan Linder, Jannl@aol.com, Quadra 630.
  121. Jan-Eric Litton, janel@neuro.ks.se, PowerMac 8100/80.
  122. David Rose, PSY009@sysh.surrey.ac.uk, TrueVision NuVista+, Mac LC II.
  123. Dan Sears, sears@netcom.com, Apple Power Macintosh 6100/60av.
  124. Steve Shevell, shevell@uchicago.edu, RasterOps “Paintboard Turbo XL”.
  125. Scott B. Stevenson, stevenso@garnet.berkeley.edu, Power Macintosh 8100/80.
  126. Marty Wachter, mrw@welchgate.welch.jhu.edu, Quadra 840AV.
  127. Wei Xie, U25384@UICVM.uic.edu, E-Machines "ColorLink_ SX-T".
  128.  
  129. Please send any corrections or additions to denis@xp.psych.nyu.edu
  130.